﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Sistema_Totem.Datos.SqlServer;

namespace Sistema_Totem.Logica.Clases
{
    public class Minutas
    {
        private int id;
        private DateTime fecha;
        private string codigo;
        private string titulo;
        private string descripcion;
        private List<Minutas> listaMinutas;
        private List<Seccion> miPlantilla;

        #region Constructores
        /// <summary>
        /// Constructor de la clase Minuta vacio.
        /// </summary>
        public Minutas()
        {

        }

        /// <summary>
        /// Constructor de la clase Minuta usado
        /// para devolver la lista de minutas.
        /// </summary>
        /// <param name="idM"></param>
        /// <param name="codigoM"></param>
        /// <param name="tituloM"></param>
        /// <param name="descripcionM"></param>
        /// <param name="fechaM"></param>
        public Minutas(int idM, string codigoM, string tituloM, string descripcionM, DateTime fechaM)
        {
            id = idM;
            codigo = codigoM;
            titulo = tituloM;
            descripcion = descripcionM;
            fecha = fechaM;
        }

        #endregion Constructores

        #region Getter and Setter
        
        /// <summary>
        /// Implementacion del atributo
        /// id de la clase Minuta.
        /// </summary>
        public int Id
        {
            get { return id; }
            set { id = value; }
        }

        /// <summary>
        /// Implementación del atributo
        /// fecha de la clase minuta.
        /// </summary>
        public DateTime Fecha
        {
            get { return fecha; }
            set { fecha = value; }
        }

        /// <summary>
        /// Implementación del atributo 
        /// codigo de la clase Minuta.
        /// </summary>
        public string Codigo
        {
            get { return codigo; }
            set { codigo = value; }
        }

        /// <summary>
        /// Implementación del atributo 
        /// titulo de la clase Minuta.
        /// </summary>
        public string Titulo
        {
            get { return titulo; }
            set { titulo = value; }
        }

        /// <summary>
        /// Implementación del atributo 
        /// descripcion de la clase Minuta.
        /// </summary>
        public string Descripcion
        {
            get { return descripcion; }
            set { descripcion = value; }
        }

        /// <summary>
        /// Implementacion del atributo listaMinutas
        /// para generar la lista de mitas
        /// </summary>
        public List<Minutas> ListaMinutas
        {
            get { return listaMinutas; }
            set { listaMinutas = value; }
        }

        /// <summary>
        /// Implementacion del atributo listaRol
        /// para generar la lista de roles.
        /// </summary>
        public List<Seccion> MiPlantilla
        {
            get { return miPlantilla; }
            set { miPlantilla = value; }
        }

        #endregion Getter and Setter

        #region Métodos

        #region Consulta de Secciones Minuta
        /// <summary>
        /// Método que consulta las secciones de una
        /// plantilla de minuta.
        /// </summary>
        /// <param name="IdProyecto"></param>
        /// <param name="idPlantilla"></param>
        /// <returns></returns>
        public List<Seccion> ConsultarSeccionesMinuta(int IdProyecto)
        {
            List<Seccion> plantillaCargada = new List<Seccion>();
            //aqui se supone que consulta las secciones de una plantilla de minutas
            SqlServerMinuta miMinuta = new SqlServerMinuta();
            plantillaCargada = miMinuta.miListaSeccionesMinutas(IdProyecto);
                       
            return plantillaCargada;
        }
        #endregion Consulta de Secciones Minuta

        /// <summary>
        /// Método que consulta los elementos de las secciones de una
        /// plantilla de minuta.
        /// </summary>
        /// <param name="IdProyecto">se pasa el ID del proyecto y la lista de Secciones</param>
        /// <param name="idPlantilla"></param>
        /// <returns></returns>
        #region Consulta de Secciones Minuta con sus elementos
        public List<Seccion> CargarElementosSeccion(List<Seccion> misSecciones, int IdProyecto) 
        {
            SqlServerMinuta miMinuta = new SqlServerMinuta();
            return miMinuta.CargarElementos(misSecciones, IdProyecto);
        
        }
        #endregion Consulta de Secciones Minuta con sus elementos

        #region Lista de Minutas
        /// <summary>
        /// Método que me almacena una lista de Minutas.
        /// </summary>
        /// <returns></returns>
        public List<Minutas> ListaMinuta()
        {
            SqlServerMinuta serverMinuta = new SqlServerMinuta();
            return serverMinuta.ListaDeMinutas();
        }
        #endregion Lista de Minutas

        #endregion Métodos
    }
}